package com.ruoyi.ResearchProjects.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.ResearchProjects.domain.ResearchProjects;
import org.apache.ibatis.annotations.Select;

/**
 * 科研项目Mapper接口
 * 
 * @author ruoyi
 * @date 2025-04-13
 */
public interface ResearchProjectsMapper extends BaseMapper<ResearchProjects>
{
    /**
     * 查询科研项目
     * 
     * @param projectId 科研项目主键
     * @return 科研项目
     */
    public ResearchProjects selectResearchProjectsByProjectId(Long projectId);

    /**
     * 查询科研项目列表
     * 
     * @param researchProjects 科研项目
     * @return 科研项目集合
     */
    public List<ResearchProjects> selectResearchProjectsList(ResearchProjects researchProjects);

    /**
     * 新增科研项目
     * 
     * @param researchProjects 科研项目
     * @return 结果
     */
    public int insertResearchProjects(ResearchProjects researchProjects);

    /**
     * 修改科研项目
     * 
     * @param researchProjects 科研项目
     * @return 结果
     */
    public int updateResearchProjects(ResearchProjects researchProjects);

    /**
     * 删除科研项目
     * 
     * @param projectId 科研项目主键
     * @return 结果
     */
    public int deleteResearchProjectsByProjectId(Long projectId);

    /**
     * 批量删除科研项目
     * 
     * @param projectIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteResearchProjectsByProjectIds(Long[] projectIds);

    //查询专家审核科研项目
    @Select("SELECT * FROM `research_projects` where point_id in (select point_id from expert_assignments where expert_id = #{userId})")
    List<ResearchProjects> selectByExpert(Long userId);
}
